﻿using System;
using System.Collections.Generic;
using System.Text;

namespace XEAS.Framework.Plugin
{
    public interface iHost
    {
        /// <summary>
        /// Return the Current Logged In User
        /// </summary>
        string CurrentUsername { get; }

        /// <summary>
        /// Return List of allowanced Plugins of the current User
        /// </summary>
        List<iPlugin> AllowancePlugin { get; }

        /// <summary>
        /// Return List of allowanced Modules of the current User by the speficied plugin
        /// </summary>
        List<Module> AllowanceModule(iPlugin plugin);

        /// <summary>
        /// Return List of allowanced Functions of the current User by the specified module
        /// </summary>
        List<Function> AllowanceFunction(Module module);

        /// <summary>
        /// Return path of cache folder
        /// </summary>
        string CacheFolder { get; }

        /// <summary>
        /// Return path of plugin folder
        /// </summary>
        string PluginFolder { get; }

        /// <summary>
        /// Return path of system folder
        /// </summary>
        string SystemFolder { get; }
    }
}
